package keypairs

import (
	"context"
	"crypto"

	"gitee.com/djaf/my-certs/app/data/dxo"
	"gitee.com/djaf/my-certs/app/web/dto"
)

// Service : Service for KeyPairs
type Service interface {
	CreateNew(ctx context.Context, item *dto.KeyPair) (*dto.KeyPair, error)

	Insert(ctx context.Context, item *dto.KeyPair) (*dto.KeyPair, error)

	Update(ctx context.Context, id dxo.KeyPairID, item *dto.KeyPair) (*dto.KeyPair, error)

	Remove(ctx context.Context, id dxo.KeyPairID) error

	Find(ctx context.Context, id dxo.KeyPairID) (*dto.KeyPair, error)

	List(ctx context.Context) ([]*dto.KeyPair, error)

	LoadSigner(ctx context.Context, id dxo.KeyPairID) (crypto.Signer, error)
}
